@Haggard
3年前 提问
1个回答

怎么查看 Linux 系统支持的所有信号

在下炳尚
3年前

运行~$ kill -l命令就可看到Linux支持的信号列表如下:

~$ kill -l
1) SIGHUP         2) SIGINT         3) SIGQUIT        4) SIGILL
5) SIGTRAP        6) SIGABRT        7) SIGBUS         8) SIGFPE
9) SIGKILL       10) SIGUSR1       11) SIGSEGV       12) SIGUSR2
13) SIGPIPE       14) SIGALRM       15) SIGTERM       17) SIGCHLD
18) SIGCONT       19) SIGSTOP       20) SIGTSTP       21) SIGTTIN
22) SIGTTOU       23) SIGURG        24) SIGXCPU       25) SIGXFSZ
26) SIGVTALRM     27) SIGPROF       28) SIGWINCH      29) SIGIO
30) SIGPWR        31) SIGSYS        34) SIGRTMIN      35) SIGRTMIN+1
36) SIGRTMIN+2    37) SIGRTMIN+3    38) SIGRTMIN+4    39) SIGRTMIN+5
40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8    43) SIGRTMIN+9
44) SIGRTMIN+10   45) SIGRTMIN+11   46) SIGRTMIN+12   47) SIGRTMIN+13
48) SIGRTMIN+14   49) SIGRTMIN+15   50) SIGRTMAX-14   51) SIGRTMAX-13
52) SIGRTMAX-12   53) SIGRTMAX-11   54) SIGRTMAX-10   55) SIGRTMAX-9
56) SIGRTMAX-8    57) SIGRTMAX-7    58) SIGRTMAX-6    59) SIGRTMAX-5
60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2    63) SIGRTMAX-1
64) SIGRTMAX

这些型号说明如下:

SIGHUP            终止进程    终端线路挂断
SIGINT         终止进程    中断进程
SIGQUIT       建立CORE文件   终止进程,并且生成core文件
SIGILL          建立CORE文件      非法指令
SIGTRAP       建立CORE文件      跟踪自陷
SIGBUS        建立CORE文件      总线错误
SIGSEGV      建立CORE文件      段非法错误
SIGFPE         建立CORE文件      浮点异常
SIGIOT         建立CORE文件      执行I/O自陷
SIGKILL        终止进程    杀死进程
SIGPIPE        终止进程    向一个没有读进程的管道写数据
SIGALARM     终止进程    计时器到时
SIGTERM       终止进程    软件终止信号
SIGSTOP       停止进程    非终端来的停止信号
SIGTSTP       停止进程    终端来的停止信号
SIGCONT      忽略信号    继续执行一个停止的进程
SIGURG        忽略信号    I/O紧急信号
SIGIO           忽略信号    描述符上可以进行I/O
SIGCHLD      忽略信号    当子进程停止或退出时通知父进程
SIGTTOU      停止进程    后台进程写终端
SIGTTIN       停止进程    后台进程读终端
SIGXGPU      终止进程    CPU时限超时
SIGXFSZ      终止进程    文件长度过长
SIGWINCH   忽略信号    窗口大小发生变化
SIGPROF      终止进程    统计分布图用计时器到时
SIGUSR1      终止进程    用户定义信号1
SIGUSR2      终止进程    用户定义信号2
SIGVTALRM  终止进程    虚拟计时器到时

注意:信号SIGKILL和SIGSTOP既不能被捕捉,也不能被忽略。信号SIGIOT与SIGABRT是一个信号。可以看出,同一个信号在不同的系统中值可能不一样,所以建议最好使用为信号定义的名字,而不要直接使用信号的值。